[9주차/레오] 워크북 제출합니다#64
Conversation
| return ApiResponse.onSuccess(MemberSuccessCode.JOIN_OK, result); | ||
| } | ||
|
|
||
| @PostMapping("/v1/login") |
There was a problem hiding this comment.
회원가입 url은 auth를 포함하는데 로그인 url에서는 auth를 안 쓰신 이유가 있나용??
| OK(HttpStatus.OK, "MEMBER200_1", "성공적으로 유저를 조회했습니다."), | ||
|
|
||
| JOIN_OK(HttpStatus.OK, "MEMBER200_2", "성공적으로 가입을 완료했습니다."); | ||
| JOIN_OK(HttpStatus.OK, "MEMBER200_2", "성공적으로 가입을 완료했습니다."), |
There was a problem hiding this comment.
회원 가입 할 때 OK보다는 회원이 생성되었으니까 CREATED를 사용하고 상태 코드도 201번이 더 알맞아 보입니다!
| @Operation(summary = "마이페이지 조회") | ||
| public ApiResponse<MemberResDTO.GetInfo> getInfo( | ||
| @RequestBody MemberReqDTO.GetInfo dto | ||
| @AuthenticationPrincipal AuthMember member |
YoungJJun
left a comment
There was a problem hiding this comment.
9주차 피드백
-
필수 미션 깔끔하게 잘 수행해주셨어요! 카카오 로그인은 선택미션이라 꼭 진행하지 않으셔도 됩니당.
적어주신대로 시험 끝나고 만약에 진행하시면 프로젝트에서 관련 기능 맡으면 수월하긴 할 것 같네요!
-
MemberService - signUp()
List<Term> termList = request.agreedTerms().stream() .map(termId -> termRepository.findById(termId) .orElseThrow(() -> new TermException(TermErrorCode.TERM_NOT_FOUND)))
필수 약관 검증 이후에 있는 코드인데 사용자가 요청한 termId에 대해서 하나하나 findById를 호출하는 구조입니다. 물론 약관의 개수가 일반적으로 엄청 많지는 않아서 크게 문제가 될까 싶지만 N+1 문제가 발생한다고 볼 수 있어요!
termRepository.findAllById(request.agreedTerms())한번에 조회 후 이를 이용해서 검증하는 방향이 좋을 것 같아요. -
MemberReqDTO
@NotBlank LocalDate birthNotBlank는 해당 타입에 동작하지 않아요. 간단하게 생각하면 NotBlank는 문자열에서만 동작한다고 생각하셔도 됩니다. 따라서
@NotNull로 수정하는게 좋을 것 같아요. -
MemberService - login()
@Transactional()붙어있는데 로그인 과정에서 DB Write 일어나지 않는 것 같아요.readOnly = true붙여주면 좋을 것 같습니다. -
MemberService - signUp()
회원생성, MemberFood 매핑 이후에 필수 약관을 검증하고 있어요.
물론 필수약관 미동의로 예외발생해도 롤백되어서 문제는 없지만 결국 가입을 실패하는 경우인데 필요없는 로직이 선행됩니다.
이메일 중복 검사 직후에 바로 약관 동의 여부를 검사하는 방향으로 수정하면 예외를 미리 발생시켜 불필요한 로직을 수행할 필요가 없어요.
이를 Fail Fast 라고도 하는데 알아두시면 좋을 것 같아요! 현재는 연습용 프로젝트이니 수정은 꼭 하실 필요는 없습니다!
-
MemberErrorCode
INVALID_PASSWORD비밀번호 불일치는 인증에 실패한 상황이라
BAD_REQUEST라고 생각하실 수도 있을 것 같은데UNAUTHORIZED가 적절해 보여요.
레오 이번주도 수고하셨습니다! 시험 잘보세용~ 🍎
✅ 실습 체크리스트
✅ 컨벤션 체크리스트
📌 주안점
카카오 로그인은 다 못해서 시험 끝나고 추가로 완료하겠습니다